package com.wdb.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wdb.modules.system.domain.Menu;
import com.wdb.modules.system.domain.vo.MenuQueryCriteria;
import com.wdb.modules.system.domain.vo.MenuVo;

import java.util.List;
import java.util.Set;

/**
 * @author: wendaobai@qq.com
 * @date: 2024/1/22 0022 10:28
 */
public interface MenuService extends IService<Menu> {
  List<Menu> findByUser(Long currentUserId);

  List<Menu> buildTree(List<Menu> menuList);
  /**
   * 构建菜单树
   *
   * @param menus /
   * @return /
   */
  List<MenuVo> buildMenus(List<Menu> menus);

  List<Menu> queryAll(MenuQueryCriteria menuQueryCriteria, boolean isQuery)
      throws IllegalAccessException;

  List<Menu> getMenus(Long pid);

  void create(Menu resources);

  void getChildMenus(List<Menu> menuList, Set<Menu> menuSet);

  // 删除菜单
  void delete(Set<Menu> menuSet);
  /**
   * 根据ID查询
   *
   * @param id /
   * @return /
   */
  Menu findById(long id);

  List<Menu> getSuperior(Menu menu, List<Menu> list);

    void update(Menu resources);
}
